/*********************师生互动版块模块开始**********************/
function interactFn(node, event) {
	if (node.isLeaf()) {		//判断点击的是树的叶子节点
		event.stopEvent();
		
		//获取点击的菜单项的id
		var node_id = node.id;
		//获取被点击的菜单项的text
		var node_text = node.text;
		
		if (node_id == 'ask_answer_column') {			//浏览所有提问
			
			//从TabPanel获取此id的对象，看看tab是否已经打开
			var tab = Ext.getCmp("center_part").getComponent(node_id);		         	
			
			if (!tab) {				//如果没有打开	
				
				//显示等待保存的提示信息
				Ext.MessageBox.show({
						title: '请等待',
						msg: '正在加载，请稍等...',
						progress: true,								        
						width: 260,
						wait:true,
						icon: 'mb_download_icon',
						animEl: 'saving',
						waitConfig: {
							interval: 200,  //interval进度的频率
							duration: 1000,	//执行进度的持续时间，超过这个时间后，interval失效，不再产生进度效果，但进度框也不会消失。
							fn: function(){	//时间到后执行
								Ext.MessageBox.hide();	//让进度条消失
							}
						}
				});
				
				/***定义带插件RowExpander的表格上的工具条的按钮的处理函数***/	
				
				//定义RowExpander显示格式的按钮的处理函数
				var styleButtonFn = function(btn){
					if (styleButton.getText() == '详细模式') {
						//展开分组表格的分组
						topicGrid.getView().expandAllGroups();
						for (var i = 0; i < topicGrid.getStore().getCount(); i++) {		
							styleButton.setText('简洁模式');
							styleButton.setIconClass("pithy_icon");
							expander.expandRow(i);
						}
					} else if (styleButton.getText() == '简洁模式') {
						//收缩分组表格的分组
						topicGrid.getView().collapseAllGroups();
						for (var i = 0; i < topicGrid.getStore().getCount(); i++) {		
							styleButton.setText('详细模式');
							styleButton.setIconClass("minute_icon");
							expander.collapseRow(i);
						}							
					}
				}
				
				//定义显示回复按钮的处理函数			
				
				/******************定义显示问题或讨论回复的窗口****************/
				//定义窗口中的表格
				//定义表格Record样式
				var replyRecord = Ext.data.Record.create([
					{name: 'id', type: 'int', mapping: 'id'},
					{name: 'author', type: 'string', mapping: 'author'},
					{name: 'role', type: 'string', mapping: 'role'},							
					{name: 'pubdate', type: 'date', mapping: 'pubdate', dateFormat: 'Y-m-dTH:i:s'},
					{name: 'content', type: 'string', mapping: 'content'}
				]);
				
				//定义加号里面的内容显示格式
				var replyExpander = new Ext.grid.RowExpander({
					tpl : new Ext.Template(
						'<p>&nbsp;</p>',
						'<p><b>回复内容：</b></p>',
						'<p>&nbsp;</p>',
						'<p>{content}</p><br/><br/>'
					)
				});
				//定义表格列样式
				var replyColums = new Ext.grid.ColumnModel([
					//加上上面定义的expander
					replyExpander,
				{
					id: 'id',
					header: '编号',
					dataIndex: 'id',
					type: 'int'
				},{
					id: 'author',
					header: '回复人',
					dataIndex: 'author',
					type: 'string'
				},{
					id: 'role',
					header: '角色',
					dataIndex: 'role',
					type: 'string'
				},{
					id: 'pubdate',
					header: '回复时间',
					dataIndex: 'pubdate',
					type: 'date',
					width: 140,
					renderer: Ext.util.Format.dateRenderer('Y年m月d日 H时i分s秒')
				}]);
				replyColums.defaultSortable = false;
				
				//定义表格顶端工具栏	
				//显示风格选择按钮
				var replyStyleButton = new Ext.Button({
					text: '详细模式',
					tooltip: '切换显示模式',
					iconCls:'minute_icon',
					handler: function(btn) {
						if (btn.getText() == '详细模式') {
							//展开分组表格的分组
							replyGrid.getView().expandAllGroups();
							for (var i = 0; i < replyGrid.getStore().getCount(); i++) {		
								btn.setText('简洁模式');
								btn.setIconClass("pithy_icon");
								replyExpander.expandRow(i);
							}
						} else if (btn.getText() == '简洁模式') {
							//收缩分组表格的分组
							replyGrid.getView().collapseAllGroups();
							for (var i = 0; i < replyGrid.getStore().getCount(); i++) {		
								btn.setText('详细模式');
								btn.setIconClass("minute_icon");
								replyExpander.collapseRow(i);
							}							
						}
					}						
				});
				//删除回复按钮
				var replyDeleteButton = new Ext.Button({
					text: '删除',
					tooltip: '删除选择回复',
					iconCls:'del_icon',
					handler: function(btn) {
						//获取表格中选中的那行（使用getSelected()只选择选中的多个行的第一行）返回的是Record类型
						var selectedCol = replyGrid.getSelectionModel().getSelected();
						
						if (selectedCol == undefined) {				//如果没有选择任何一行
						
							Ext.Msg.alert("错误提示", "请选择一行你要删除的记录！");
							
						} else {									//选择的行删除
							//先提醒用户是否要删除
							Ext.Msg.confirm("提醒信息", "你确定要删除你选择的记录吗？", function(btn) {
								//如果用户确定删除
								if (btn == 'yes') {
									//获取选择的id
									var del_id = selectedCol.get("id");									
									//发送到后台处理
									Ext.Ajax.request({
										url: 'reply_mgr.do?cmd=delete',
										success: function(response) {
											var obj = Ext.decode(response.responseText);
											if (typeof(obj) != 'undefined') {
												if (obj.result == 'success') {
													Ext.Msg.alert("操作结果", "恭喜，删除记录成功！");
													//刷新表格数据，看看删除效果
													replyGrid.getStore().reload();
												} else {
													Ext.Msg.alert("操作结果", "抱歉，删除记录失败！请重新尝试！");
												}
											} else {
												Ext.Msg.alert("操作结果", "抱歉，删除记录失败！请重新尝试！");
											}
											
										},
										failure: function() {
											Ext.Msg.alert("操作结果", "抱歉，删除记录失败！请重新尝试！");
										},
										params: {id: del_id}		
									});
								}
							});
						}				
					}						
				});
				var replyTopToolbar = new Ext.Toolbar({
					items: [replyStyleButton, '-', replyDeleteButton]
				});
				
				//定义Stroe(使用的是GroupingStore产生分组表格，按是老师或学生分组)
				var replyStore = new Ext.data.GroupingStore({
					proxy: new Ext.data.HttpProxy({url:'reply_mgr.do?cmd=show'}),
					reader: new Ext.data.JsonReader({
						totalProperty: 'totalProperty',
						root: 'root'
					}, replyRecord),
					//分组的列
					groupField: 'role',
					//分组必须设置的，排序的列
					sortInfo: {field: 'id', direction: 'desc'}
				});		
				
				//定义表格
				var replyGrid = new Ext.grid.GridPanel({
					loadMask: true,
					//使得表格强制fit父容器
					viewConfig: {
						forceFit: true
					},						
					store: replyStore,
					cm: replyColums,
					sm: new Ext.grid.RowSelectionModel(),
					//设置分组View
					view: new Ext.grid.GroupingView({
						forceFit:true,
				        //显示这个分组有多少项
				        groupTextTpl: '{text} ({[values.rs.length]} {["条记录"]})'
					}),
					//添加顶端的工具栏
					tbar: replyTopToolbar,
					//添加底部分页条（bbar-->bottom bar）
					bbar: new Ext.PagingToolbar({
						pageSize: 10,
						store: replyStore,
						displayInfo: true,
						displayMsg: '显示第 {0} --> {1} 条记录，共 {2} 条记录',
						emptyMsg: "没有记录"
					}),
					//扩展插件
					plugins: replyExpander,
					collapsible: true,
					animCollapse: false
				});
				
				//定义窗口显示回复
				var reply_win = Ext.getCmp("reply_win");
				
				if (!reply_win) {
					reply_win = new Ext.Window({
						id: 'reply_win',
						title: '查看问题回复',
						layout: 'fit',
						width:700,
						height:500,
						//设置当点击X按钮时候，是隐藏还是销毁
						closeAction:'hide',
						//标题栏不允许超出浏览器范围
						constrainHeader: true,
						//开启蒙板效果
						modal: true,
						items: [replyGrid]								
					});
				}					
				/****************定义显示问题或讨论回复的窗口结束****************/
				
				//定义显示回复按钮的处理函数		
				var showButtonFn = function(){
					
					//获取表格中选中的那行（使用getSelected()只选择选中的多个行的第一行）返回的是Record类型
					var selectedCol = topicGrid.getSelectionModel().getSelected();
					
					if (selectedCol == undefined) {				//如果没有选择任何一行
					
						Ext.Msg.alert("错误提示", "请选择你要查看回复的问题！");
						
					} else {									//选择的行查看回复
						var close_id = selectedCol.get("id");
						//设置所回复的问题的id
						replyStore.baseParams.topic_id = close_id;		
						//加载数据
						replyStore.load({params:{start: 0, limit: 10}});
						//定义窗口显示回复
						reply_win.show();
					}
				}
				//定义提出新问题按钮					
				var newQuestionButtonFn = function(){
					
						//判断是否存在，不存在才创建
						var add_question_win = Ext.getCmp("add_question_win");
						
						if (!add_question_win) {
							/************弹出窗口(提出新问题)*************/
							//创建表单
							var newQuestionForm = new Ext.form.FormPanel({
								url: 'topic_mgr.do?cmd=add&flag=question',
								labelAlign: 'right',
								labelWidth: 80,
								frame: true,
								defaultType: 'textfield',						        
								items: [{
									xtype: 'fieldset',
									title: '提问基本信息',
									autoHeight: true,
									defaultType: 'textfield',
									//统一设置宽度和验证
									defaults: {					
										//不为空
										allowBlank: false
									},									
									items: [{
										fieldLabel: '标题',
										name: 'title',
										width: 300,
										//最大长度
										maxLength: 20,
										//最小长度
										minLength: 2
									},{
										xtype: 'htmleditor',
										id: 'newQuestionEditor',
										fieldLabel: '内容',
										name: 'content',
										height: 200,
										//禁止编辑源代码
										enableSourceEdit: false,
										//这个是编码转换..
										anchor: '98%' 
										
									}]						     
								}]							        
							});	
							
							//定义弹出窗口
							add_question_win = new Ext.Window({
								id: 'add_question_win',
								title: '提出新问题',
								width:650,
								height:350,
								//设置当点击X按钮时候，是隐藏还是销毁
								closeAction:'hide',
								//不允许超出浏览器范围
								constrain: true,
								//开启蒙板效果
								modal: true,
								buttonAlign: 'center',
								items: [newQuestionForm],
								buttons: [{
									text:'保存',
									iconCls: 'submit_icon',
									//提交表单
									handler: function () {											
										//判断HtmlEditor即内容的输入是否为空
										var contentValue = Ext.getCmp("newQuestionEditor").getValue();
										if (Ext.isEmpty(contentValue.Trim())) {
											Ext.Msg.alert("错误信息", "请输入您提出问题的内容!");
											return;
										}
										newQuestionForm.getForm().submit({
											success: function (newQuestionForm, action) {
												Ext.Msg.alert("操作结果", action.result.msg);		
					                            //重载Store
												topicStore.reload();
												//重置newQuestionForm中的数据
												newQuestionForm.reset();
												//关闭窗口（隐藏）
												add_question_win.hide();
											},
											failure: function (newQuestionForm, action) {
												Ext.Msg.alert("操作结果", action.result.msg);
											}											
										});
										//显示等待保存的提示信息
						        		Ext.MessageBox.show({
						        				title: '请等待',
			                                    msg: '正在保存，请稍等...',
			                                    progress: true,								        
										        width: 240,
										        wait:true,
										        icon: 'mb_waiting_icon',
										        animEl: 'saving',
										        waitConfig: {
										        	interval: 200,  //interval进度的频率
										        	duration: 1000,	//执行进度的持续时间，超过这个时间后，interval失效，不再产生进度效果，但进度框也不会消失。
													fn: function(){	//时间到后执行
					                                 	Ext.MessageBox.hide();	//让进度条消失
					                                }
										        }
			                            });
									}						       	 	
								}, {
									text:'重置',
									iconCls: 'reset_icon',
									handler: function () {
										newQuestionForm.getForm().reset();
									}	
								}, {
									text:'取消',
									iconCls: 'revoke_icon',
									handler: function () {
										add_question_win.hide();
									}	
								}]
							});
							/************弹出窗口(提出新问题)结束*************/
						}
						
						add_question_win.show();
				}
				//定义回复问题按钮的处理函数					
				var answerButtonFn = function(){
					
					//获取表格中选中的那行（使用getSelected()只选择选中的多个行的第一行）返回的是Record类型
					var selectedCol = topicGrid.getSelectionModel().getSelected();
					
					if (selectedCol == undefined) {				//如果没有选择任何一行
					
						Ext.Msg.alert("错误提示", "请选择你要回答的问题！");
						
					} else {									//选择的行回答问题
						var isClosed = selectedCol.get("status");
						
						var topic_id = selectedCol.get("id");
						
						//看看用户是否选择的是未解决的问题去回答
						if (isClosed == '已解决') {
							Ext.Msg.alert("错误提示", "此问题已解决，请选择未解决的问题回答！");
						} else {																	
							
							//判断是否存在，不存在才创建
							var reply_question_win = Ext.getCmp("reply_question_win");
							
							if (!reply_question_win) {
								
								/************弹出窗口(回复问题)*************/
								//创建表单
								var replyForm = new Ext.form.FormPanel({
									url: 'reply_mgr.do?cmd=add&flag=question',
									labelAlign: 'right',
									labelWidth: 80,
									frame: true,
									defaultType: 'textfield',						        
									items: [{
										xtype: 'fieldset',
										title: '回答基本信息',
										autoHeight: true,
										defaultType: 'textfield',
										//统一设置宽度和验证
										defaults: {					
											//不为空
											allowBlank: false
										},									
										items: [{
											id: 'topic_hidden',
											name: 'topic_id',
											xtype: 'hidden',
											value: topic_id
										}, {
											id: 'replyEditor',
											xtype: 'htmleditor',											
											fieldLabel: '内容',
											name: 'content',
											height: 200,
											//禁止编辑源代码
											enableSourceEdit: false,
											//这个是编码转换..
											anchor: '98%' 
											
										}]						     
									}]							        
								});	
								//定义弹出窗口
								reply_question_win = new Ext.Window({
									id: 'reply_question_win',
									title: '回答问题',
									width:640,
									height:320,
									//设置当点击X按钮时候，是隐藏还是销毁
									closeAction:'hide',
									//不允许超出浏览器范围
									constrain: true,
									//开启蒙板效果
									modal: true,
									buttonAlign: 'center',
									items: [replyForm],
									buttons: [{
										text:'保存',
										iconCls: 'submit_icon',
										//提交表单
										handler: function () {			
											//判断HtmlEditor即内容的输入是否为空
											var contentValue = replyForm.getForm().findField("replyEditor").getValue();
											if (contentValue.Trim() == "") {
												Ext.Msg.alert("错误信息", "请输入您提出问题的内容!");
												return;
											}
											replyForm.getForm().submit({
												success: function (replyForm, action) {
													Ext.Msg.alert("操作结果", action.result.msg);	
													//刷新表格数据，看看删除效果
													topicGrid.getStore().reload();
													//重置newQuestionForm中的数据
													replyForm.reset();
													//关闭窗口（隐藏）
													reply_question_win.hide();
												},
												failure: function (replyForm, action) {
													Ext.Msg.alert("操作结果", action.result.msg);
												}											
											});
											//显示等待保存的提示信息
							        		Ext.MessageBox.show({
							        				title: '请等待',
				                                    msg: '正在保存，请稍等...',
				                                    progress: true,								        
											        width: 240,
											        wait:true,
											        icon: 'mb_waiting_icon',
											        animEl: 'saving',
											        waitConfig: {
											        	interval: 200,  //interval进度的频率
											        	duration: 1000,	//执行进度的持续时间，超过这个时间后，interval失效，不再产生进度效果，但进度框也不会消失。
														fn: function(){	//时间到后执行
						                                 	Ext.MessageBox.hide();	//让进度条消失
						                                }
											        }
				                            });
										}						       	 	
									}, {
										text:'重置',
										iconCls: 'reset_icon',
										handler: function () {
											replyForm.getForm().reset();
										}	
									}, {
										text:'取消',
										iconCls: 'revoke_icon',
										handler: function () {
											reply_question_win.hide();
										}	
									}]
								});
								/************弹出窗口(回复问题)结束*************/									
							}
							reply_question_win.show();
							
							//设置隐藏域的值(注意要在Window显示show之后，给其中的表单赋值)												
							Ext.getCmp("topic_hidden").setValue(topic_id);
							
						}
					}
				}		
				
				//定义关闭问题按钮的处理函数					
				var endButtonFn = function(){
					
					//获取表格中选中的那行（使用getSelected()只选择选中的多个行的第一行）返回的是Record类型
					var selectedCol = topicGrid.getSelectionModel().getSelected();
					
					if (selectedCol == undefined) {				//如果没有选择任何一行
					
						Ext.Msg.alert("错误提示", "请选择你要关闭的问题！");
						
					} else {									//选择的行关闭问题	
						var isClosed = selectedCol.get("status");
						//看看用户是否选择的是未解决的问题去关闭
						if (isClosed == '已解决') {
							Ext.Msg.alert("错误提示", "请选择未解决的问题！");
						} else {
							//先提醒用户是否要删除
							Ext.Msg.confirm("提醒信息", "你确定此问题已经解决并关闭此问题吗？", function(btn) {
								//如果用户确定删除
								if (btn == 'yes') {
									//获取选择的id
									var close_id = selectedCol.get("id");									
									//发送到后台处理
									Ext.Ajax.request({
										url: 'topic_mgr.do?cmd=close',
										success: function(response) {
											var obj = Ext.decode(response.responseText);
											if (typeof(obj) != 'undefined') {
												if (obj.result == 'success') {
													Ext.Msg.alert("操作结果", "恭喜，关闭问题成功！");
													//刷新表格数据，看看删除效果
													topicGrid.getStore().reload();
												} else {
													Ext.Msg.alert("操作结果", "抱歉，关闭问题失败！请重新尝试！");
												}
											} else {
												Ext.Msg.alert("操作结果", "抱歉，关闭问题失败！请重新尝试！");
											}
											
										},
										failure: function() {
											Ext.Msg.alert("操作结果", "抱歉，关闭问题失败！请重新尝试！");
										},
										params: {id: close_id}		
									});
								}
							});		
						}
					}
				}					
				
				//定义删除按钮的处理函数
				var deleteButtonFn = function(){
					//获取表格中选中的那行（使用getSelected()只选择选中的多个行的第一行）返回的是Record类型
					var selectedCol = topicGrid.getSelectionModel().getSelected();
					
					if (selectedCol == undefined) {				//如果没有选择任何一行
					
						Ext.Msg.alert("错误提示", "请选择一行你要删除的记录！");
						
					} else {									//选择的行删除
						//先提醒用户是否要删除
						Ext.Msg.confirm("提醒信息", "你确定要删除你选择的记录吗？", function(btn) {
							//如果用户确定删除
							if (btn == 'yes') {
								//获取选择的id
								var del_id = selectedCol.get("id");									
								//发送到后台处理
								Ext.Ajax.request({
									url: 'topic_mgr.do?cmd=delete',
									success: function(response) {
										var obj = Ext.decode(response.responseText);
										if (typeof(obj) != 'undefined') {
											if (obj.result == 'success') {
												Ext.Msg.alert("操作结果", "恭喜，删除记录成功！");
												//刷新表格数据，看看删除效果
												topicGrid.getStore().reload();
											} else {
												Ext.Msg.alert("操作结果", "抱歉，删除记录失败！请重新尝试！");
											}
										} else {
											Ext.Msg.alert("操作结果", "抱歉，删除记录失败！请重新尝试！");
										}
										
									},
									failure: function() {
										Ext.Msg.alert("操作结果", "抱歉，删除记录失败！请重新尝试！");
									},
									params: {id: del_id}		
								});
							}
						});
					}						
				}
				
				
				/**定义带插件RowExpander的表格上的工具条的按钮的处理函数结束**/			
				
				/******定义所有提问带ext插件RowExpander的表格*********/	
				
				//定义表格Record样式
				var topicRecord = Ext.data.Record.create([
					{name: 'id', type: 'int', mapping: 'id'},
					{name: 'title', type: 'string', mapping: 'title'},
					{name: 'status', type: 'string', mapping: 'status'},
					{name: 'reply_count', type: 'int', mapping: 'reply_count'},
					{name: 'author', type: 'string', mapping: 'author'},
					{name: 'role', type: 'string', mapping: 'role'},							
					{name: 'pubdate', type: 'date', mapping: 'pubdate', dateFormat: 'Y-m-dTH:i:s'},
					{name: 'content', type: 'string', mapping: 'content'}
				]);
				
				//定义加号里面的内容显示格式
				var expander = new Ext.grid.RowExpander({
					tpl : new Ext.Template(
						'<p>&nbsp;</p>',
						'<p><b>提问具体内容：</b></p>',
						'<p>&nbsp;</p>',
						'<p>{content}</p><br /><br />'
					)
				});
				
				//定义表格列样式
				var topicColums = new Ext.grid.ColumnModel([
					//加上上面定义的expander
					expander,
				{
					id: 'id',
					header: '编号',
					dataIndex: 'id',
					type: 'int'
				},{
					id: 'title',
					header: '标题',
					dataIndex: 'title',
					type: 'string'
				},{
					id: 'status',
					header: '状态',
					dataIndex: 'status',
					type: 'string'
				},{
					id: 'reply_count',
					header: '回复数',
					dataIndex: 'reply_count',
					type: 'int'
				},{
					id: 'author',
					header: '作者',
					dataIndex: 'author',
					type: 'string'
				},{
					id: 'role',
					header: '角色',
					dataIndex: 'role',
					type: 'string'
				},{
					id: 'pubdate',
					header: '提问时间',
					dataIndex: 'pubdate',
					type: 'date',
					width: 140,
					renderer: Ext.util.Format.dateRenderer('Y年m月d日 H时i分s秒')
				}]);
				topicColums.defaultSortable = false;
				
				//定义Stroe(使用的是GroupingStore产生分组表格，按是否问题已经解决分组)
				var topicStore = new Ext.data.GroupingStore({
					proxy: new Ext.data.HttpProxy({url:'topic_mgr.do?cmd=show'}),
					reader: new Ext.data.JsonReader({
						totalProperty: 'totalProperty',
						root: 'root'
					}, topicRecord),
					baseParams: {flag: 'question'},
					//分组的列
					groupField: 'status',
					//分组必须设置的，排序的列
					sortInfo: {field: 'id', direction: 'desc'}
				});
				topicStore.load({params:{start: 0, limit: 10}});				    
				
				//定义表格顶端工具栏	
				//显示风格选择按钮
				var styleButton = new Ext.Button({
					text: '详细模式',
					tooltip: '切换显示模式',
					iconCls:'minute_icon',
					handler: styleButtonFn
				});
				//查看回复按钮
				var showButton = new Ext.Button({
					text: '查看回复',
					tooltip: '查看此问题的回复',
					iconCls:'show_icon',
					handler: showButtonFn
				});
				//提出问题按钮
				var newQuestionButton = new Ext.Button({
					text: '提出新问题',
					tooltip: '提出新的问题',
					iconCls:'question_icon',
					handler: newQuestionButtonFn
				});
				//回答问题按钮
				var answerButton = new Ext.Button({
					text: '我来回答',
					tooltip: '我来回答此问题',
					iconCls:'answer_icon',
					handler: answerButtonFn
				});
				//关闭问题按钮
				var endButton = new Ext.Button({
					text: '关闭问题',
					tooltip: '关闭选中问题，设置为已解决',
					iconCls:'close_icon',
					handler: endButtonFn
				});
				//删除问题按钮
				var deleteButton = new Ext.Button({
					text: '删除',
					tooltip: '删除选中的讨论话题',
					iconCls:'del_icon',
					handler: deleteButtonFn
				});
				var topToolbar = new Ext.Toolbar({
					items: [styleButton, '-', showButton, '-', newQuestionButton, '-', answerButton, '-', endButton, '-', deleteButton]
				});
				
				//定义表格
				var topicGrid = new Ext.grid.GridPanel({
					loadMask: true,
					//使得表格强制fit父容器
					viewConfig: {
						forceFit: true
					},
					store: topicStore,
					cm: topicColums,
					sm: new Ext.grid.RowSelectionModel(),
					//设置分组View
					view: new Ext.grid.GroupingView({
						forceFit:true,
				        //显示这个分组有多少项
				        groupTextTpl: '{text} ({[values.rs.length]} {["条记录"]})'
					}),
					//添加顶端的工具栏
					tbar: topToolbar,
					//添加底部分页条（bbar-->bottom bar）
					bbar: new Ext.PagingToolbar({
						pageSize: 10,
						store: topicStore,
						displayInfo: true,
						displayMsg: '显示第 {0} --> {1} 条记录，共 {2} 条记录',
						emptyMsg: "没有记录"
					}),
					//扩展插件
					plugins: expander,
					collapsible: true,
					animCollapse: false
				});						
					
				/*****定义显示bug和建议的带ext插件RowExpander的表格结束*******/						
					
				/*****************添加此表格到TabPanel*****************/
				tab = Ext.getCmp("center_part").add({
					//使用点击菜单的id，这样方便事件处理
					id: node_id,
					//标题为被点击的菜单项的text
					title: node_text,
					closable:true,
					iconCls: 'nor_icon',
					autoScroll:true,
					layout: 'fit',
					items: [topicGrid]
				});		  
				/***************添加此表格到TabPanel结束***************/
				
			}
			//设置此新增Tab为活动的Tab
			Ext.getCmp("center_part").setActiveTab(tab);
			
		} else if (node_id == 'discuss_column') {		//浏览所有讨论
			
			//从TabPanel获取此id的对象，看看tab是否已经打开
			var tab = Ext.getCmp("center_part").getComponent(node_id);		         	
			
			if (!tab) {				//如果没有打开	
				//显示等待保存的提示信息
				Ext.MessageBox.show({
						title: '请等待',
						msg: '正在加载，请稍等...',
						progress: true,								        
						width: 260,
						wait:true,
						icon: 'mb_download_icon',
						animEl: 'saving',
						waitConfig: {
							interval: 200,  //interval进度的频率
							duration: 1000,	//执行进度的持续时间，超过这个时间后，interval失效，不再产生进度效果，但进度框也不会消失。
							fn: function(){	//时间到后执行
								Ext.MessageBox.hide();	//让进度条消失
							}
						}
				});
				
				/***定义带插件RowExpander的表格上的工具条的按钮的处理函数***/	
				
				//定义RowExpander显示格式的按钮的处理函数
				var styleButtonFn = function(btn){
					if (styleButton.getText() == '详细模式') {
						//展开分组表格的分组
						topicGrid.getView().expandAllGroups();
						for (var i = 0; i < topicGrid.getStore().getCount(); i++) {		
							styleButton.setText('简洁模式');
							styleButton.setIconClass("pithy_icon");
							expander.expandRow(i);
						}
					} else if (styleButton.getText() == '简洁模式') {
						//收缩分组表格的分组
						topicGrid.getView().collapseAllGroups();
						for (var i = 0; i < topicGrid.getStore().getCount(); i++) {		
							styleButton.setText('详细模式');
							styleButton.setIconClass("minute_icon");
							expander.collapseRow(i);
						}							
					}
				}
									
				//定义显示回复按钮的处理函数			
				
				/******************定义显示问题或讨论回复的窗口****************/
				//定义窗口中的表格
				//定义表格Record样式
				var replyRecord = Ext.data.Record.create([
					{name: 'id', type: 'int', mapping: 'id'},
					{name: 'author', type: 'string', mapping: 'author'},
					{name: 'role', type: 'string', mapping: 'role'},							
					{name: 'pubdate', type: 'date', mapping: 'pubdate', dateFormat: 'Y-m-dTH:i:s'},
					{name: 'content', type: 'string', mapping: 'content'}
				]);
				
				//定义加号里面的内容显示格式
				var replyExpander = new Ext.grid.RowExpander({
					tpl : new Ext.Template(
						'<p>&nbsp;</p>',
						'<p><b>回复内容：</b></p>',
						'<p>&nbsp;</p>',
						'<p>{content}</p><br/><br/>'
					)
				});
				//定义表格列样式
				var replyColums = new Ext.grid.ColumnModel([
					//加上上面定义的expander
					replyExpander,
				{
					id: 'id',
					header: '编号',
					dataIndex: 'id',
					type: 'int'
				},{
					id: 'author',
					header: '回复人',
					dataIndex: 'author',
					type: 'string'
				},{
					id: 'role',
					header: '角色',
					dataIndex: 'role',
					type: 'string'
				},{
					id: 'pubdate',
					header: '回复时间',
					dataIndex: 'pubdate',
					type: 'date',
					width: 140,
					renderer: Ext.util.Format.dateRenderer('Y年m月d日 H时i分s秒')
				}]);
				replyColums.defaultSortable = false;
				
				//定义表格顶端工具栏	
				//显示风格选择按钮
				var replyStyleButton = new Ext.Button({
					text: '详细模式',
					tooltip: '切换显示模式',
					iconCls:'minute_icon',
					handler: function(btn) {
						if (btn.getText() == '详细模式') {
							//展开分组表格的分组
							replyGrid.getView().expandAllGroups();
							for (var i = 0; i < replyGrid.getStore().getCount(); i++) {		
								btn.setText('简洁模式');
								btn.setIconClass("pithy_icon");
								replyExpander.expandRow(i);
							}
						} else if (btn.getText() == '简洁模式') {
							//收缩分组表格的分组
							replyGrid.getView().collapseAllGroups();
							for (var i = 0; i < replyGrid.getStore().getCount(); i++) {		
								btn.setText('详细模式');
								btn.setIconClass("minute_icon");
								replyExpander.collapseRow(i);
							}							
						}
					}						
				});
				//删除回复按钮
				var replyDeleteButton = new Ext.Button({
					text: '删除',
					tooltip: '删除选择回复',
					iconCls:'del_icon',
					handler: function(btn) {
						//获取表格中选中的那行（使用getSelected()只选择选中的多个行的第一行）返回的是Record类型
						var selectedCol = replyGrid.getSelectionModel().getSelected();
						
						if (selectedCol == undefined) {				//如果没有选择任何一行
						
							Ext.Msg.alert("错误提示", "请选择一行你要删除的记录！");
							
						} else {									//选择的行删除
							//先提醒用户是否要删除
							Ext.Msg.confirm("提醒信息", "你确定要删除你选择的记录吗？", function(btn) {
								//如果用户确定删除
								if (btn == 'yes') {
									//获取选择的id
									var del_id = selectedCol.get("id");									
									//发送到后台处理
									Ext.Ajax.request({
										url: 'reply_mgr.do?cmd=delete',
										success: function(response) {
											var obj = Ext.decode(response.responseText);
											if (typeof(obj) != 'undefined') {
												if (obj.result == 'success') {
													Ext.Msg.alert("操作结果", "恭喜，删除记录成功！");
													//刷新表格数据，看看删除效果
													replyGrid.getStore().reload();
												} else {
													Ext.Msg.alert("操作结果", "抱歉，删除记录失败！请重新尝试！");
												}
											} else {
												Ext.Msg.alert("操作结果", "抱歉，删除记录失败！请重新尝试！");
											}
											
										},
										failure: function() {
											Ext.Msg.alert("操作结果", "抱歉，删除记录失败！请重新尝试！");
										},
										params: {id: del_id}		
									});
								}
							});
						}				
					}						
				});
				var replyTopToolbar = new Ext.Toolbar({
					items: [replyStyleButton, '-', replyDeleteButton]
				});
				
				//定义Stroe(使用的是GroupingStore产生分组表格，按是老师或学生分组)
				var replyStore = new Ext.data.GroupingStore({
					proxy: new Ext.data.HttpProxy({url:'reply_mgr.do?cmd=show'}),
					reader: new Ext.data.JsonReader({
						totalProperty: 'totalProperty',
						root: 'root'
					}, replyRecord),
					//分组的列
					groupField: 'role',
					//分组必须设置的，排序的列
					sortInfo: {field: 'id', direction: 'desc'}
				});		
				
				//定义表格
				var replyGrid = new Ext.grid.GridPanel({
					loadMask: true,
					//使得表格强制fit父容器
					viewConfig: {
						forceFit: true
					},						
					store: replyStore,
					cm: replyColums,
					sm: new Ext.grid.RowSelectionModel(),
					//设置分组View
					view: new Ext.grid.GroupingView({
						forceFit:true,
				        //显示这个分组有多少项
				        groupTextTpl: '{text} ({[values.rs.length]} {["条记录"]})'
					}),
					//添加顶端的工具栏
					tbar: replyTopToolbar,
					//添加底部分页条（bbar-->bottom bar）
					bbar: new Ext.PagingToolbar({
						pageSize: 10,
						store: replyStore,
						displayInfo: true,
						displayMsg: '显示第 {0} --> {1} 条记录，共 {2} 条记录',
						emptyMsg: "没有记录"
					}),
					//扩展插件
					plugins: replyExpander,
					collapsible: true,
					animCollapse: false
				});
				
				//定义窗口显示回复
				var discuss_reply_win = Ext.getCmp("discuss_reply_win");
				
				if (!discuss_reply_win) {
					discuss_reply_win = new Ext.Window({
						id: 'discuss_reply_win',
						title: '查看讨论话题回复',
						layout: 'fit',
						width:700,
						height:500,
						//设置当点击X按钮时候，是隐藏还是销毁
						closeAction:'hide',
						//标题栏不允许超出浏览器范围
						constrainHeader: true,
						//开启蒙板效果
						modal: true,
						items: [replyGrid]								
					});
				}					
				/****************定义显示讨论话题或讨论回复的窗口结束****************/
				
				//定义显示回复按钮的处理函数		
				var showButtonFn = function(){
					
					//获取表格中选中的那行（使用getSelected()只选择选中的多个行的第一行）返回的是Record类型
					var selectedCol = topicGrid.getSelectionModel().getSelected();
					
					if (selectedCol == undefined) {				//如果没有选择任何一行
					
						Ext.Msg.alert("错误提示", "请选择你要查看回复的讨论话题！");
						
					} else {									//选择的行查看回复
						var close_id = selectedCol.get("id");
						//设置所回复的讨论话题的id
						replyStore.baseParams.topic_id = close_id;		
						//加载数据
						replyStore.load({params:{start: 0, limit: 10}});
						//定义窗口显示回复
						discuss_reply_win.show();
					}
				}
				
				//定义发起新话题按钮					
				var newDisscussButtonFn = function(){
					
						//判断是否存在，不存在才创建
						var add_discussion_win = Ext.getCmp("add_discussion_win");
						
						if (!add_discussion_win) {
							/************弹出窗口(提出新话题)*************/
							//创建表单
							var newDiscussionForm = new Ext.form.FormPanel({
								url: 'topic_mgr.do?cmd=add&flag=discuss',
								labelAlign: 'right',
								labelWidth: 80,
								frame: true,
								defaultType: 'textfield',						        
								items: [{
									xtype: 'fieldset',
									title: '讨论基本信息',
									autoHeight: true,
									defaultType: 'textfield',
									//统一设置宽度和验证
									defaults: {					
										//不为空
										allowBlank: false
									},									
									items: [{
										fieldLabel: '标题',
										name: 'title',
										width: 300,
										//最大长度
										maxLength: 20,
										//最小长度
										minLength: 2
									},{
										xtype: 'htmleditor',
										id: 'newDiscussEditor',
										fieldLabel: '内容',
										name: 'content',
										height: 200,
										//禁止编辑源代码
										enableSourceEdit: false,
										//这个是编码转换..
										anchor: '98%' 
										
									}]						     
								}]							        
							});	
							
							//定义弹出窗口
							add_discussion_win = new Ext.Window({
								id: 'add_discussion_win',
								title: '发起新讨论',
								width:650,
								height:350,
								//设置当点击X按钮时候，是隐藏还是销毁
								closeAction:'hide',
								//不允许超出浏览器范围
								constrain: true,
								//开启蒙板效果
								modal: true,
								buttonAlign: 'center',
								items: [newDiscussionForm],
								buttons: [{
									text:'保存',
									iconCls: 'submit_icon',
									//提交表单
									handler: function () {											
										//判断HtmlEditor即内容的输入是否为空
										var contentValue = Ext.getCmp("newDiscussEditor").getValue();
										if (contentValue.Trim() == "") {
											Ext.Msg.alert("错误信息", "请输入您发起讨论话题的内容!");
											return;
										}
										newDiscussionForm.getForm().submit({
											success: function (newDiscussionForm, action) {
												Ext.Msg.alert("操作结果", action.result.msg);		
					                            //重载Store
												topicStore.reload();
												//重置newQuestionForm中的数据
												newDiscussionForm.reset();
												//关闭窗口（隐藏）
												add_discussion_win.hide();
											},
											failure: function (newDiscussionForm, action) {
												Ext.Msg.alert("操作结果", action.result.msg);
											}											
										});
										//显示等待保存的提示信息
						        		Ext.MessageBox.show({
						        				title: '请等待',
			                                    msg: '正在保存，请稍等...',
			                                    progress: true,								        
										        width: 240,
										        wait:true,
										        icon: 'mb_waiting_icon',
										        animEl: 'saving',
										        waitConfig: {
										        	interval: 200,  //interval进度的频率
										        	duration: 1000,	//执行进度的持续时间，超过这个时间后，interval失效，不再产生进度效果，但进度框也不会消失。
													fn: function(){	//时间到后执行
					                                 	Ext.MessageBox.hide();	//让进度条消失
					                                }
										        }
			                            });
									}						       	 	
								}, {
									text:'重置',
									iconCls: 'reset_icon',
									handler: function () {
										newDiscussionForm.getForm().reset();
									}	
								}, {
									text:'取消',
									iconCls: 'revoke_icon',
									handler: function () {
										add_discussion_win.hide();
									}	
								}]
							});
							/************弹出窗口(提出新讨论话题)结束*************/
						}
						
						add_discussion_win.show();
				}
				
				//定义回复讨论话题按钮的处理函数					
				var answerDiscussionButtonFn = function(){
					
					//获取表格中选中的那行（使用getSelected()只选择选中的多个行的第一行）返回的是Record类型
					var selectedCol = topicGrid.getSelectionModel().getSelected();
					
					if (selectedCol == undefined) {				//如果没有选择任何一行
					
						Ext.Msg.alert("错误提示", "请选择你要参与的讨论！");
						
					} else {									//选择的行回答讨论话题
						var isClosed = selectedCol.get("status");
						
						var topic_id = selectedCol.get("id");
						
						//看看用户是否选择的是未解决的讨论话题去回答
						if (isClosed == '已结束') {
							Ext.Msg.alert("错误提示", "此话题已关闭，请选择未关闭的讨论话题！");
						} else {																	
							
							//判断是否存在，不存在才创建
							var reply_discussion_win = Ext.getCmp("reply_discussion_win");
							
							if (!reply_discussion_win) {
								
								/************弹出窗口(回复讨论话题)*************/
								//创建表单
								var replyForm = new Ext.form.FormPanel({
									url: 'reply_mgr.do?cmd=add&flag=discuss',
									labelAlign: 'right',
									labelWidth: 80,
									frame: true,
									defaultType: 'textfield',						        
									items: [{
										xtype: 'fieldset',
										title: '讨论基本信息',
										autoHeight: true,
										defaultType: 'textfield',
										//统一设置宽度和验证
										defaults: {					
											//不为空
											allowBlank: false
										},									
										items: [{
											id: 'topic_discuss_hidden',
											name: 'topic_id',
											xtype: 'hidden',
											value: topic_id
										}, {
											id: 'reply_discuss_Editor',
											xtype: 'htmleditor',											
											fieldLabel: '内容',
											name: 'content',
											height: 200,
											//禁止编辑源代码
											enableSourceEdit: false,
											//这个是编码转换..
											anchor: '98%' 
											
										}]						     
									}]							        
								});	
								//定义弹出窗口
								reply_discussion_win = new Ext.Window({
									id: 'reply_discussion_win',
									title: '参与讨论',
									width:640,
									height:320,
									//设置当点击X按钮时候，是隐藏还是销毁
									closeAction:'hide',
									//不允许超出浏览器范围
									constrain: true,
									//开启蒙板效果
									modal: true,
									buttonAlign: 'center',
									items: [replyForm],
									buttons: [{
										text:'保存',
										iconCls: 'submit_icon',
										//提交表单
										handler: function () {			
											//判断HtmlEditor即内容的输入是否为空
											var contentValue = replyForm.getForm().findField("reply_discuss_Editor").getValue();
											if (contentValue.Trim() == "") {
												Ext.Msg.alert("错误信息", "请输入您回复讨论话题的内容!");
												return;
											}
											replyForm.getForm().submit({
												success: function (replyForm, action) {
													Ext.Msg.alert("操作结果", action.result.msg);	
													//刷新表格数据，看看删除效果
													topicGrid.getStore().reload();
													//重置newQuestionForm中的数据
													replyForm.reset();
													//关闭窗口（隐藏）
													reply_discussion_win.hide();
												},
												failure: function (replyForm, action) {
													Ext.Msg.alert("操作结果", action.result.msg);
												}											
											});
											//显示等待保存的提示信息
							        		Ext.MessageBox.show({
							        				title: '请等待',
				                                    msg: '正在保存，请稍等...',
				                                    progress: true,								        
											        width: 240,
											        wait:true,
											        icon: 'mb_waiting_icon',
											        animEl: 'saving',
											        waitConfig: {
											        	interval: 200,  //interval进度的频率
											        	duration: 1000,	//执行进度的持续时间，超过这个时间后，interval失效，不再产生进度效果，但进度框也不会消失。
														fn: function(){	//时间到后执行
						                                 	Ext.MessageBox.hide();	//让进度条消失
						                                }
											        }
				                            });
										}						       	 	
									}, {
										text:'重置',
										iconCls: 'reset_icon',
										handler: function () {
											replyForm.getForm().reset();
										}	
									}, {
										text:'取消',
										iconCls: 'revoke_icon',
										handler: function () {
											reply_discussion_win.hide();
										}	
									}]
								});
								/************弹出窗口(回复讨论话题)结束*************/									
							}
							reply_discussion_win.show();
							
							//设置隐藏域的值(注意要在Window显示show之后，给其中的表单赋值)												
							Ext.getCmp("topic_discuss_hidden").setValue(topic_id);
							
						}
					}
				}		
				
				//定义关闭讨论话题按钮的处理函数					
				var endButtonFn = function(){
					
					//获取表格中选中的那行（使用getSelected()只选择选中的多个行的第一行）返回的是Record类型
					var selectedCol = topicGrid.getSelectionModel().getSelected();
					
					if (selectedCol == undefined) {				//如果没有选择任何一行
					
						Ext.Msg.alert("错误提示", "请选择你要关闭的讨论话题！");
						
					} else {									//选择的行关闭讨论话题
						var isClosed = selectedCol.get("status");
						//看看用户是否选择的是未关闭的讨论话题去关闭
						if (isClosed == '已关闭') {
							Ext.Msg.alert("错误提示", "请选择进行中的讨论话题！");
						} else {
							//先提醒用户是否要删除
							Ext.Msg.confirm("提醒信息", "你确定关闭此讨论话题吗？", function(btn) {
								//如果用户确定删除
								if (btn == 'yes') {
									//获取选择的id
									var close_id = selectedCol.get("id");									
									//发送到后台处理
									Ext.Ajax.request({
										url: 'topic_mgr.do?cmd=close',
										success: function(response) {
											var obj = Ext.decode(response.responseText);
											if (typeof(obj) != 'undefined') {
												if (obj.result == 'success') {
													Ext.Msg.alert("操作结果", "恭喜，关闭讨论成功！");
													//刷新表格数据，看看删除效果
													topicGrid.getStore().reload();
												} else {
													Ext.Msg.alert("操作结果", "抱歉，关闭讨论失败！请重新尝试！");
												}
											} else {
												Ext.Msg.alert("操作结果", "抱歉，关闭讨论失败！请重新尝试！");
											}
											
										},
										failure: function() {
											Ext.Msg.alert("操作结果", "抱歉，关闭讨论失败！请重新尝试！");
										},
										params: {id: close_id}		
									});
								}
							});		
						}
					}
				}										
				
				//定义删除按钮的处理函数
				var deleteButtonFn = function(){
					//获取表格中选中的那行（使用getSelected()只选择选中的多个行的第一行）返回的是Record类型
					var selectedCol = topicGrid.getSelectionModel().getSelected();
					
					if (selectedCol == undefined) {				//如果没有选择任何一行
					
						Ext.Msg.alert("错误提示", "请选择一行你要删除的记录！");
						
					} else {									//选择的行删除
						//先提醒用户是否要删除
						Ext.Msg.confirm("提醒信息", "你确定要删除你选择的记录吗？", function(btn) {
							//如果用户确定删除
							if (btn == 'yes') {
								//获取选择的id
								var del_id = selectedCol.get("id");									
								//发送到后台处理
								Ext.Ajax.request({
									url: 'topic_mgr.do?cmd=delete',
									success: function(response) {
										var obj = Ext.decode(response.responseText);
										if (typeof(obj) != 'undefined') {
											if (obj.result == 'success') {
												Ext.Msg.alert("操作结果", "恭喜，删除记录成功！");
												//刷新表格数据，看看删除效果
												topicGrid.getStore().reload();
											} else {
												Ext.Msg.alert("操作结果", "抱歉，删除记录失败！请重新尝试！");
											}
										} else {
											Ext.Msg.alert("操作结果", "抱歉，删除记录失败！请重新尝试！");
										}
										
									},
									failure: function() {
										Ext.Msg.alert("操作结果", "抱歉，删除记录失败！请重新尝试！");
									},
									params: {id: del_id}		
								});
							}
						});
					}						
				}					
				
				/**定义带插件RowExpander的表格上的工具条的按钮的处理函数结束**/			
				
				/******定义所有提问带ext插件RowExpander的表格*********/	
				
					//定义表格Record样式
					var topicRecord = Ext.data.Record.create([
						{name: 'id', type: 'int', mapping: 'id'},
						{name: 'title', type: 'string', mapping: 'title'},
						{name: 'status', type: 'string', mapping: 'status'},
						{name: 'reply_count', type: 'int', mapping: 'reply_count'},
						{name: 'author', type: 'string', mapping: 'author'},
						{name: 'role', type: 'string', mapping: 'role'},							
						{name: 'pubdate', type: 'date', mapping: 'pubdate', dateFormat: 'Y-m-dTH:i:s'},
						{name: 'content', type: 'string', mapping: 'content'}
					]);
					
					//定义加号里面的内容显示格式
					var expander = new Ext.grid.RowExpander({
						tpl : new Ext.Template(
							'<p>&nbsp;</p>',
							'<p><b>讨论话题：</b></p>',
							'<p>&nbsp;</p>',
							'<p>{content}</p><br /><br />'
						)
					});
					
					//定义表格列样式
					var topicColums = new Ext.grid.ColumnModel([
						//加上上面定义的expander
						expander,
					{
						id: 'id',
						header: '编号',
						dataIndex: 'id',
						type: 'int'
					},{
						id: 'title',
						header: '标题',
						dataIndex: 'title',
						type: 'string'
					},{
						id: 'status',
						header: '状态',
						dataIndex: 'status',
						type: 'string'
					},{
						id: 'reply_count',
						header: '回复数',
						dataIndex: 'reply_count',
						type: 'int'
					},{
						id: 'author',
						header: '作者',
						dataIndex: 'author',
						type: 'string'
					},{
						id: 'role',
						header: '角色',
						dataIndex: 'role',
						type: 'string'
					},{
						id: 'pubdate',
						header: '提出时间',
						dataIndex: 'pubdate',
						type: 'date',
						width: 140,
						renderer: Ext.util.Format.dateRenderer('Y年m月d日 H时i分s秒')
					}]);
					topicColums.defaultSortable = false;
					
					//定义Stroe(使用的是GroupingStore产生分组表格，按是否讨论结束分组)
					var topicStore = new Ext.data.GroupingStore({
						proxy: new Ext.data.HttpProxy({url:'topic_mgr.do?cmd=show'}),
						reader: new Ext.data.JsonReader({
							totalProperty: 'totalProperty',
							root: 'root'
						}, topicRecord),
						baseParams: {flag: 'discuss'},
						//分组的列
						groupField: 'status',
						//分组必须设置的，排序的列
						sortInfo: {field: 'id', direction: 'desc'}
					});
					topicStore.load({params:{start: 0, limit: 10}});				    
					
					//定义表格顶端工具栏	
					//显示风格选择按钮
					var styleButton = new Ext.Button({
						text: '详细模式',
						tooltip: '切换显示模式',
						iconCls:'minute_icon',
						handler: styleButtonFn
					});
					//查看讨论话题按钮
					var showButton = new Ext.Button({
						text: '查看回复',
						tooltip: '查看此问题的回复',
						iconCls:'show_icon',
						handler: showButtonFn
					});
					//提出讨论话题按钮
					var newQuestionButton = new Ext.Button({
						text: '发起讨论',
						tooltip: '发起讨论话题',
						iconCls:'question_icon',
						handler: newDisscussButtonFn
					});
					//回答讨论话题按钮
					var answerButton = new Ext.Button({
						text: '参与讨论',
						tooltip: '我来参与讨论',
						iconCls:'answer_icon',
						handler: answerDiscussionButtonFn
					});
					//关闭讨论话题按钮
					var endButton = new Ext.Button({
						text: '关闭讨论话题',
						tooltip: '关闭选中的讨论话题',
						iconCls:'close_icon',
						handler: endButtonFn
					});
					//删除讨论话题按钮
					var deleteButton = new Ext.Button({
						text: '删除',
						tooltip: '删除选中的讨论话题',
						iconCls:'del_icon',
						handler: deleteButtonFn
					});
					var topToolbar = new Ext.Toolbar({
						items: [styleButton, '-', showButton, '-', newQuestionButton, '-', answerButton, '-', endButton, '-', deleteButton]
					});
					
					//定义表格
					var topicGrid = new Ext.grid.GridPanel({
						loadMask: true,
						//使得表格强制fit父容器
						viewConfig: {
							forceFit: true
						},
						store: topicStore,
						cm: topicColums,
						sm: new Ext.grid.RowSelectionModel(),
						//设置分组View
						view: new Ext.grid.GroupingView({
							forceFit:true,
					        //显示这个分组有多少项
					        groupTextTpl: '{text} ({[values.rs.length]} {["条记录"]})'
						}),
						//添加顶端的工具栏
						tbar: topToolbar,
						//添加底部分页条（bbar-->bottom bar）
						bbar: new Ext.PagingToolbar({
							pageSize: 10,
							store: topicStore,
							displayInfo: true,
							displayMsg: '显示第 {0} --> {1} 条记录，共 {2} 条记录',
							emptyMsg: "没有记录"
						}),
						//扩展插件
						plugins: expander,
						collapsible: true,
						animCollapse: false
					});
					
				/*****定义显示bug和建议的带ext插件RowExpander的表格结束*******/						
					
				/*****************添加此表格到TabPanel*****************/
				tab = Ext.getCmp("center_part").add({
					//使用点击菜单的id，这样方便事件处理
					id: node_id,
					//标题为被点击的菜单项的text
					title: node_text,
					closable:true,
					iconCls: 'nor_icon',
					autoScroll:true,
					layout: 'fit',
					items: [topicGrid]
				});		  
				/***************添加此表格到TabPanel结束***************/
				
			}
			//设置此新增Tab为活动的Tab
			Ext.getCmp("center_part").setActiveTab(tab);
			
		}
	}
}
/***********************师生互动版块模块结束*******************/